<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 扩展运算符: ... 
        //        取出对象所有可以遍历的属性，然后拷贝给当前对象。  
        //    作用：1.对象的浅拷贝; 2.对象的合并
        let hat = { red: '红色', price: 99 };
        let phone = { year: 2022 };
        let school = { name: '麻省理工', address: '波士顿', hat };

        // = 复杂数据类型传递的是内存地址
        // let university = school;

        // 拷贝对象
        let university = { ...school };
        school.name = '北大';
        hat.price = 88;
        console.log(university);

        // 对象的合并
        let result = { ...phone, ...hat };
        phone.year = 2000;
        console.log(result);
        /*
            university这被赋值的时候，university原地址无效，
            又重新创建了一个自己的地址，跟school是两个独立的地址，

            浅拷贝：基本数据类型拷贝的值，
                   复杂数据类型类型拷贝的是内存地址。
        */
    </script>
</body>

</html>